package main

import (
	"fmt"
	"runtime"
	"runtime/debug"
)

func main() {
	// 设置gc频率： 30s 一次
	debug.SetGCPercent(30)

	// 强制gc 将尽可能多的内存返回给操作系统
	debug.FreeOSMemory()

	// 设置最大堆大小, 2G
	debug.SetMaxStack(1024 * 1024 * 2)

	// 设置最大线程数：控制并发执行的最大 OS 线程数，主要用于限制并发线程的数量。
	debug.SetMaxThreads(12)

	//控制 Go 可以并行使用的最大逻辑处理器数量(不是物理核)，影响 goroutines 的调度和并行执行。
	runtime.GOMAXPROCS(runtime.NumCPU())
	fmt.Println("cpu num:", runtime.NumCPU())
}
